package com.xyazm.core.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xyazm.core.domain.SegmentDO;
import org.apache.ibatis.annotations.*;

import java.util.List;


@Mapper
public interface SegmentMapper extends BaseMapper<SegmentDO> {


    /**
     * 获取所有bizTag
     */
    @Select("SELECT biz_tag FROM segment")
    List<String> listAllBizTag();

    /**
     * 更新 maxId
     * @param bizTag 业务tag
     * @author xuyou
     * 2022-12-31 21:04
    */
    @Update("UPDATE segment SET max_id = max_id + step WHERE biz_tag = #{bizTag}")
    int updateMaxId(String bizTag);

    /**
     * 使用动态计算出来额步长更新maxId
     * @param bizTag 业务tag
     * @param step 动态计算出来的步长
     * @return 返回
     */
    @Update("UPDATE segment SET max_id = max_id + #{step} WHERE biz_tag = #{bizTag}")
    int updateMaxIdByDynamicStepAndGet(@Param("bizTag") String bizTag, @Param("step") int step);
}
